import java.util.*;


public class Solution1 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 递增路径的最大长度
     * @param matrix int整型二维数组 描述矩阵的每个数
     * @return int整型
     */
    public int solve (int[][] matrix) {
        // write code here
        int len = 0;
        int n = matrix.length;
        int m = matrix[0].length;
        for(int i = 0;i<matrix.length;i++) {
            for(int j = 0;j<matrix[0].length;j++) {
                boolean[][] dp = new boolean[matrix.length][matrix[0].length];
                for(boolean[] row : dp) {
                    Arrays.fill(row, false);
                }
                len = Math.max(len,fun(matrix,i,j,dp,n,m,-1));
            }
        }
        return len;
    }
    public int fun(int[][] matrix,int i,int j,boolean[][] dp,int n,int m,int tmp) {
        if(i < 0 || j < 0 || i >= n || j >= m || dp[i][j] || matrix[i][j] <= tmp) {
            return 0;
        }
        dp[i][j] = true;
        int len = Math.max(Math.max(fun(matrix,i+1,j,dp,n,m,matrix[i][j]),fun(matrix,i-1,j,dp,n,m,matrix[i][j])),Math.max(fun(matrix,i,j+1,dp,n,m,matrix[i][j]),fun(matrix,i,j-1,dp,n,m,matrix[i][j])));
        return 1 + len;

    }
}